[API实践]DeepSeek的API接口介绍
本节目标
- 了解DeepSeek API的基本概念和功能
- 掌握API接口调用的基本流程
- 熟悉不同语言下的API调用方式
- 理解API密钥的创建和管理方法
- 掌握基础请求参数的设置与调整
DeepSeek API概述
DeepSeek是一家中国的人工智能企业,提供了强大的大语言模型API服务。通过DeepSeek API,您可以轻松地将AI能力集成到自己的应用程序中,实现文本生成、对话交互、代码编写等多种功能。
什么是API?
API(应用程序编程接口)是一种允许不同软件应用相互通信的机制。在AI领域,API使开发者能够通过发送简单的HTTP请求来调用复杂的AI模型,而无需关心底层实现细节。
类比理解:API就像餐厅的服务员,您只需点餐(发送请求),厨师(AI模型)就会准备食物(生成响应),服务员再将食物送到您的桌前(返回结果)。您无需了解厨师的烹饪细节,只需关注最终的菜品。
DeepSeek API的主要功能
DeepSeek提供的API主要包括以下功能:
- 聊天对话:实现和AI的多轮交互,支持上下文理解
- 内容生成:生成各类文本内容,如文章、故事、广告文案等
- 代码开发:生成、优化、解释各种编程语言的代码
- 逻辑推理:处理复杂的逻辑问题和数学计算
- 知识问答:回答各领域的专业问题
API访问凭证与管理
创建API密钥
在使用DeepSeek API之前,您需要创建API密钥(API Key):
- 注册并登录DeepSeek平台账户
- 访问API密钥管理页面
- 点击"创建新密钥"按钮
- 为密钥命名并设置权限范围
- 生成并安全保存您的API密钥
安全提示:API密钥相当于您账户的密码,请妥善保管,不要在公开场合或代码仓库中暴露。建议使用环境变量或配置文件来存储密钥。
密钥权限与限制
DeepSeek API密钥通常具有以下属性:
- 调用额度:不同级别的账户有不同的调用次数限制
- 模型访问权限:可指定密钥能够访问的模型类型
- 有效期:可设置密钥的有效使用期限
- IP限制:可限制特定IP地址使用密钥
API基本调用方式
DeepSeek API采用REST风格,主要通过HTTP POST请求进行调用。下面介绍三种常用的API调用方式:
1. 使用curl命令行工具
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <DeepSeek API Key>" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"stream": false
}'
2. 使用Python
使用conda切换python环境:
创建:conda create -n py310 python=3.10
(只需要执行一次)
使用:conda activate py310
验证:python --version
打印3.10.x
在vscode&cursor中设置:
安装扩展:
创建文件01-main.py
,复制代码:
# 安装依赖: pip install openai
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)
print(response.choices[0].message.content)
可能出的问题:
ImportError: Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.
需要安装依赖:
pip install 'httpx[socks]'
运行,打开终端:
python 01-main.py
3. 使用Node.js
// 安装依赖: npm install openai
import OpenAI from "openai";
const openai = new OpenAI({
baseURL: 'https://api.deepseek.com',
apiKey: '<DeepSeek API Key>'
});
async function main() {
const completion = await openai.chat.completions.create({
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Hello" }
],
model: "deepseek-chat",
});
console.log(completion.choices[0].message.content);
}
main();
基本请求参数说明
DeepSeek API请求通常包含以下核心参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
model | 字符串 | 是 | 指定要使用的模型,如"deepseek-chat" |
messages | 数组 | 是 | 对话消息列表,包含角色和内容 |
stream | 布尔值 | 否 | 是否使用流式输出,默认为false |
temperature | 浮点数 | 否 | 控制生成文本的随机性,0-2之间,默认为1 |
max_tokens | 整数 | 否 | 生成内容的最大标记数,默认依模型而不同 |
top_p | 浮点数 | 否 | 控制生成文本的多样性,0-1之间,默认为1 |
消息格式详解
messages
参数是一个数组,每个元素是一个包含role
和content
的对象:
{
"messages": [
{"role": "system", "content": "系统指令内容"},
{"role": "user", "content": "用户的输入内容"},
{"role": "assistant", "content": "AI的回复内容"}
]
}
其中,角色(role)主要有三种:
- system:设置AI的行为指令和背景信息
- user:用户的输入内容
- assistant:AI的回复内容
API响应格式
一个典型的DeepSeek API响应如下:
{
"id": "cmpl-123abc456def",
"object": "chat.completion",
"created": 1677858242,
"model": "deepseek-chat",
"choices": [
{
"message": {
"role": "assistant",
"content": "您好!有什么我可以帮助您的吗?"
},
"finish_reason": "stop",
"index": 0
}
],
"usage": {
"prompt_tokens": 11,
"completion_tokens": 15,
"total_tokens": 26
}
}
主要字段说明:
- id:响应的唯一标识符
- choices:包含模型生成的回复内容
- finish_reason:标记生成结束的原因("stop"表示自然结束,"length"表示达到设定的最大长度)
- usage:标记使用统计,用于计费和监控
流式输出模式
在实时交互场景中,可以使用流式输出(stream=true)来逐步获取生成内容,提升用户体验:
# Python流式输出示例
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "给我讲个故事"}
],
stream=True # 开启流式输出
)
# 逐步处理和显示生成内容
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
类比理解:普通模式像是等待一封完整的邮件到达,而流式输出则像是在实时观看别人写信的过程,能够立即看到每个新写下的字。
本节小结
- DeepSeek API是调用大语言模型能力的接口工具
- API密钥是访问API的凭证,需要妥善管理
- API调用可以通过curl、Python、Node.js等多种方式实现
- 基本请求包含模型指定、消息内容、生成参数等
- 流式输出可以提升交互体验
实践任务
- 注册DeepSeek账户并创建自己的API密钥
- 尝试使用三种不同方式调用API进行简单对话
- 调整温度参数,观察生成结果的差异
- 尝试流式输出模式,体验实时生成效果
下节预告
在下一节中,我们将深入探讨DeepSeek API的高级参数设置和调优方法,学习如何通过精确控制API参数来获得更符合需求的输出结果。